package com.mall.orders.server.mapper;

import com.mall.orders.common.domain.Orders;
import com.mall.orders.common.domain.dto.OrdersDto;
import com.mall.orders.common.domain.vo.OrdersVo;

import java.util.List;

public interface OrdersMapper {
    /**
     * 查询订单
     *
     * @param id 订单主键
     * @return 订单
     */
    public OrdersVo selectOrdersById(Long id);
//    public Orders selectOrdersById(@Param("id") Long id);

    /**
     * 查询订单列表
     *
     * @param ordersDto 订单
     * @return 订单集合
     */
    public List<OrdersVo> selectOrdersList(OrdersDto ordersDto);
//    public List<Orders> selectOrdersList(Orders orders);

    /**
     * 新增订单
     *
     * @param orders 订单
     * @return 结果
     */
    public int insertOrders(Orders orders);

    /**
     * 修改订单
     *
     * @param orders 订单
     * @return 结果
     */
    public int updateOrders(Orders orders);

    /**
     * 删除订单
     *
     * @param id 订单主键
     * @return 结果
     */
    public int deleteOrdersById(Long id);



    /**
     * 批量删除订单
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteOrdersByIds(Long[] ids);


    /**
     * 取消订单
     * @param orders
     * 要添加取消原因和备注
     */
    public void updateCancelStatus(Orders orders);


    /**
     * 修改收货地址
     * @param orders
     */
    public void updateAddr(OrdersVo orders);

    /**
     * 修改总价
     */
    public void updateTotalMoney(OrdersVo orders);

    /**
     * 把订单状态改为代收货
     */
    public void updateDeliverStatus(Long id);
}
